/*
 * @Author: gezhigang
 * @Date: 2020-08-13 14:26:06
 */
// const LodashModuleReplacementPlugin = require('lodash-webpack-plugin');
const isProduction = process.env.NODE_ENV === 'production'

const staticPath = 'https://cpfile.yqcx.faw.cn/static'
// const cdnServer = 'https://cdn.bootcss.com'

const cdns = [
    `${staticPath}/vue/2.6.11/vue.min.js`,
    `${staticPath}/vuex/3.1.3/vuex.min.js`,
    `${staticPath}/vue-router/3.1.6/vue-router.min.js`,
    `${staticPath}/vant/2.8.3/vant.min.js?v=10086`,
    `${staticPath}/axios/0.19.0/axios.min.js`
]

module.exports = {
    publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_HOST+'mbi/' : '/',
    // 输出文件目录 不写则默认根目录
    outputDir: '/Users/gezg/Documents/faw/node_space/cp-web/public/mbi',
    // 静态资源目录 (js, css, img, fonts)
    // assetsDir: 'static',
    // 生产环境是否生成 sourceMap 文件
    productionSourceMap: false,
    devServer: {
        proxy: {
            '/api': {
                target: 'http://127.0.0.1:7001',
                ws: true,
                changeOrigin: true,
                pathRequiresRewrite: {
                    '^/api': '/api'
                }
            }
        }
    },
    chainWebpack: config => {
        // 生产环境配置
        if (isProduction) {
            // config.plugin("loadshReplace").use(new LodashModuleReplacementPlugin());
            // 删除预加载
            config.plugins.delete('preload')
            config.plugins.delete('prefetch')
            // 压缩代码
            config.optimization.minimize(true)
            // 分割代码
            config.optimization.splitChunks({
                chunks: 'all'
            })
            // 生产环境注入cdn
            config.plugin('html').tap(args => {
                args[0].cdn = cdns
                return args
            })
        }
        
    },
    //webpack配置
    configureWebpack: {
        externals: isProduction ? {
            vue: 'Vue',
            vant: 'vant',
            vuex: 'Vuex',
            swiper: 'Swiper',
            'vue-router': 'VueRouter',
            echarts: 'echarts',
            axios: 'axios'
        } : {},
        //警告 webpack 的性能提示
        performance: {
            hints: 'warning',
            //入口起点的最大体积
            maxEntrypointSize: 50000000,
            //生成文件的最大体积
            maxAssetSize: 30000000,
            //只给出 js 文件的性能提示
            assetFilter: function (file) {
                return file.endsWith('.js')
            }
        }
    },
    parallel: require('os').cpus().length > 1,
    // css相关配置
    css: {
        // 是否使用css分离插件 ExtractTextPlugin
        extract: true,
        // requireModuleExtension: false,
        // 开启 CSS source maps?
        sourceMap: false
    },
}
